<?php
/**
 * Класс предоставления доступа к результату выборки пользователей из БД.
 */
class Users_Model_User_Db_List extends Workset_Model_Object_Iterator_Abstract {
	/**
	 * @var Users_Model_User_Db
	 */
	protected $_oCurrent = null;

	/**
	 * (non-PHPdoc)
	 * @see library/Workset/Model/Object/Iterator/Workset_Model_Object_Iterator_Abstract#current()
	 */
	public function current() {
		if ($this->_oCurrent = parent::current()) {
			if (Users_Model_User::hasUserInCache($this->_oCurrent)) {
				$this->_oCurrent = Users_Model_User::getUserFromCache($this->_oCurrent->getId());
			}
			else {
				Users_Model_User::putUserToCache($this->_oCurrent);
			}
		}

		return $this->_oCurrent;
	}

	/**
	 * Получение следующего объекта.
	 * 
	 * @return Users_Model_User_Db
	 */
	public function fetch() {
		$oUser = $this->current();
		$this->next();
		return $oUser;
	}
}
?>